1. Field of the Invention
This invention relates to color printing, and more specifically, to converting a four dimensional color (CMYK), defined in terms of a standard or another printer, into an equivalent four dimensional color defined in terms of the colors (i.e., inks, toners, etc.) that are uniquely associated with a printer that is to perform the actual printing.
2. Description of the Related Art
For additive color processes such as used in display monitors, red, green, and blue are primary colors. In theory, mixing red, green, and blue light in various combinations can produce any color. For example, cyan is a mixture of green and blue and magenta is a mixture of red and blue. Black is the absence of any red, green, or blue; while white contains all three. A display monitor involves an additive process of light, and therefore, any color it produces can be defined in terms of red (R), green (G), and blue (B).
In a printing process, inks are typically deposited on white paper which already reflects the full amount of red, green, and blue. Instead of adding red, green and blue (RGB) together to produce any color, quantities of red, green, and blue are removed to produce a desired color. To do this, filters or inks have to be produced which filter individual primary colors, while not affecting the other two. The filter colors which accomplish this are the colors which are the complement of the primary colors. For example, yellow is the complement of blue. A blue filter, one which filters out blue light, passes red and green and thus appears yellow. Yellow ink can be thought of as an ink which removes blue. Thus, the complement of blue is yellow; the complement of red is cyan; and the complement of green is magenta. As such, cyan, magenta, and yellow are the primary colors in the subtractive color system and are known as the process colors in the printing industry.
Theoretically, with only three colors of ink: cyan (C), magenta (M) and yellow (Y), a printer could print any color. White can be obtained by putting no ink on the paper; and black can be obtained by putting cyan, magenta, and yellow on the paper, blocking all light. Realistically, however, the color obtained when placing cyan, magenta, and yellow on paper may not be pure black. It may be brownish. Consequently, black ink is typically added to the printing process color set. The black ink not only insures a richer black color, but it also reduces the amount of ink that has to be used to produce most colors. For example, if at any one place on the paper, quantities of C, M, and Y are placed, there will be a gray component which can be removed and replaced with black. This reduces the total amount of ink on the paper and produces better grays and blacks. In addition, it increases the gamut of the color set.
As a theoretical example of this process called black substitution or gray component removal, consider the following:
______________________________________ A color requires Cyan = 20% Magenta = 40% Yellow = 60% ______________________________________
In theory, the above color has a 20% gray component, the least common denominator. As such, 20% of each color could be removed and replaced with 20% black. The following will theoretically produce the same color.
______________________________________ New color mix Cyan = 0% Magenta = 20% Yellow = 40% Black = 20% ______________________________________
In the above example, 120 units of ink are replaced with 80 units of ink. Thus ink is saved. Colored inks usually cost more than black ink; thereby saving even more.
As shown above, color can be expressed in several ways. A color can be expressed in terms of percents of RGB (red, green, blue), CMY, (cyan, magenta, yellow) or CMYK (cyan, magenta, yellow, black). None of these color spaces, as they are called, are defined as to what color is produced by mixing combinations of each. Generally, these color spaces are referred to as being device dependent, since the color produced by a given CMYK mix on one printer will not produce the same color on another.
An attempt has been made in the United States to standardize the process color inks so that the colors can be predicted. A standard called SWOP (Specification for Web Offset Publication) has been published which standardized the process ink colors. Recently, the standard has been taken a step further and 928 combinations of CMYK have been defined as to what color will result in a device independent color space (CIE XYZ or CIE L*a*b*). In Europe, a standard called Euroscale has been developed for four different paper surfaces. SWOP and Euroscale are very close, but not exactly the same.
In 1931, the organization called the Commission Internationale L'Eclairge (International Commission of Lighting), the CIE, met to try to establish a system of device independent color, color based on human sight. While attempting to define RGB, problems arose which persuaded the members to process the data through a matrix transform which produced a color space called CIE XYZ or XYZ. Since the XYZ color space is based on the human perception of color, any two different colors, even though the spectrum of these two colors may be different, will be perceived as the same color by a human if the XYZ values are the same under given lighting conditions.
From the XYZ color space, additional color spaces have been derived. One of these is called CIEL*a*b*, pronounced C Lab, or L*a*b*. This color space is based on XYZ of the color referenced to XYZ of the light source or paper. Most specifications such as the SWOP standard are specified in terms of XYZ and L*a*b* under a light source such as daylight D50. It is a three component color space with each color specified in terms of L*, a*, and b*. L* specifies the lightness; and the hue and saturation are determined from the values of a* and b*.
As previously discussed, a display monitor involves an additive process of light, and therefore, any color it produces can be defined in terms of RGB. However, a printing process is a subtractive process since it is printing on white paper, and therefore, color printers use cyan (C), magenta (M), and yellow (Y) or cyan, magenta, yellow and black (K), i.e., CMY or CMYK, to produce various colors. However, input files, such as a display monitors, scanners or other information used to print images are typically defined using RGB. Some input files can be defined in terms of CMY or CMYK. Input files may also be defined in device independent terms such as XYZ or L*a*b. Therefore, a conversion process has to take place in order to convert RGB, XYZ, or L*a*b* of an input file into CMY or CMYK for printing.
If the input file is RGB, XYZ, or L*a*b*, it must be converted to CMY or CMYK. If the input file is CMY, the printer could print with CMY, but it may be more desirable to print using CMYK. If the input file is CMYK, no conversion is necessary.
3D to 3D Conversions
3-D color tables (such as CMY-to-L*a*b*) and transformations among 3-D color spaces are straight forward and unambiguous or unique within the color gamut of the printer; and therefore, inversion schemes (e.g. from L*a*b* to CMY) are available. These schemes involve measurements of color patches of varied color amounts at specified intervals (e.g. creating a 9.times.9.times.9 matrix, i.e., 729 patches) to form a CMY lattice and a corresponding L*a*b* (or other color space) lattice (corresponding to CMY 9.times.9.times.9 for the example given here). These primary lattices can be denoted by (CMY)p and (L*a*b*)p. An interpolation method is used to establish one-to-one correspondence between points in these lattices. The so called "color rendering dictionaries" are constructed using such interpolation algorithms. If such rendering dictionaries have been established, finding CMY for a given L*a*b value becomes a simpler task.
L*a*b* to CMY Conversion
Coordinates for device independent color space are specified in L*a*b*. However, printers typically use CMY colors. It is therefore necessary to convert from L*a*b* to CMY. Converting to CMY involves a three dimensional (3D) to three dimensional (3D) conversion process. It should be noted that well known, commonly used, methods can be used to perform 3D to 3D conversions, such as L*a*b* to CMY.
For example, a L*a*b* to CMY transfer involves making print sample patches using the printer for which the conversion is desired. The print patches are made up of combinations of C, M, and Y. Typically, there are nine patches of each (making a 9.times.9.times.9 sample layout having 729 patches) with each color at 0%, 12.5%, 37.5%, 50%, 62.5%, 75%, 87.5%, and 100%. For each one of the 729 patches the exact percent of cyan, magenta, and yellow is known. Then, each print sample, i.e., patch, is measured and its CIE L*a*b* calculated. A table is created having various percentages of CMY with its corresponding L*a*b* value. To express C, M and Y in terms of equal increments of L*a*b*, known inversion and interpolation techniques are employed. For any given L*a*b* value received as input, that L*a*b* value is located in the table and the corresponding percentages of CMY are found. If the same L*a*b* value is not in the table, interpolation is used or out-of-gamut mapping is used. Out-of-gamut mapping occurs if the L*a*b* value is beyond the volume or color space of colors that a printer is able to produce. Any L*a*b* value that lies within this volume is something that can actually be accurately reproduced by the printer. Since any given printer has its limitations and cannot print every possible color, out-of-gamut means that a given L*a*b* is outside the capability of the printer. There are many well-known out-of-gamut mapping techniques. Basically, these techniques try to get to the point on the surface of the color volume of the printer that is the closest color match.
RGB to CMY Conversion
Converting from RGB to CMY merely involves a process that represents the relationship between complementary colors. The subtractive color primaries cyan, magenta, and yellow are the complements of the additive primaries red, green, and blue. Therefore, in theory, the conversion is:
cyan=1.0--red PA1 magenta=1.0--green PA1 yellow=1.0--blue PA1 K=min (C,M,Y) PA1 C'=C-K PA1 M'=M-K PA1 Y'=Y-K
For example, a color that is 0.2 red, 0.7 green, and 0.4 blue can also be expressed as 1.0-0.2=0.8 cyan, 1.0-0.7=0.3 magenta, and 1.0-0.4=0.6 yellow.
3D to 4D Conversions
CMY to CMYK Conversion
Converting from CMY to CMYK involves using black generation and under color removal to generate a black component. Under color removal reduces the amount of cyan, magenta, and yellow components to compensate for the amount of black that was added by the black generation. The percentage of black used is the minimum percentage that is used by cyan, magenta or yellow. The altered amount of CMY that is then used is the original amount minus the percentage amount used for black.
For example, for an input file defined in CMY, the conversion to C'M'Y'K is as follows:
For this conversion, it is assumed that the inks are a perfect dye such that a mixture in equal amounts of CMY will produce black or a perfect gray, i.e., a block die. The above illustrates one way to convert CMY to CMYK.
A side effect from converting from CMY to CMYK is that the gamut may be reduced, i.e., the number of colors that are produced (the color space) may be reduced, due to loss of hue. This side effect can be compensated for by using an under color addition process. The under color addition process regains lost hues and expands the gamut. This process results in new percentages of CMYK noted below as C"M"Y"K". The process uses the following well-known formulas from classical theory: ##EQU1## RGB to CMYK Conversion
A combination of processes including the RGB to CMY conversion and the CMY to CMYK conversion can be used to convert from RGB to CMYK.
L*a*b* to CMYK Conversion
This conversion involves the 3D interpolation scheme and out-gamut mapping scheme discussed above for transforming L*a*b* to CMY. This involved creating CMY patches (e.g., 9.times.9.times.9), measuring for L*a*b* values and interpolating, if necessary, to get a CMY value for a given L*a*b* input value. Then the above process for converting CMY to CMYK can be used.
The problem with the above conversion processes, especially the ones that convert CMY to CMYK, i.e., a 3D to 4D conversion, is that these processes are based on theoretical colors and color relationships. A printer may not be capable of producing such theoretical colors.
In addition, since printers typically have four colors, CMYK, for printing, but input files are typically defined using three color values (e.g., RGB, L*a*b*), an equivalent color set of more than three colors must be found for every color obtained with combinations of three primary colors. Transforming a three dimensional system to four or higher dimensions provides no unique solution. The well-known simple scheme described above is based on the ideal dies known as block dies which yields perfect black or grey (w/o hue) whenever equal amounts from C, M, and Y are overprinted over a given area. Then, for any given set of 3 primaries, an equal amount is removed from each color component and the same amount of black can be added without changing the color value. The amount of ink saved is twice the amount of black added. The amount of CMY replaced can vary from zero to the lowest of the three colorants--a fact which indicates that this process is not unique. For real colorants, combining equal amounts of three colorants will not result in ideal grey/black. Thus, the choice of black replacement becomes ambiguous.
U.S. Patent Application Serial Number (Internal Docket Number BO9-96-020) entitled "A System, Method, and Program For Converting Three Dimensional Colorants To More Than Three Dimensional Colorants" filed on even date herewith, assigned to the Assignee hereof and entirely incorporated herein by this reference, discloses a technique for converting from three colorants to four or more colorants. The technique takes into account the colors and L*a*b* values of the colors that a given printer is actually capable of printing. The technique also uses a fourth color substitution process that results in an unambiguous fourth color replacement percentage amount.
In some situations it is desirable to convert a four color combination (e.g., CMYK) to an equivalent four color combination of the same colors (CMYK). For example, the printing press industry has their own standard and specification for CMYK (e.g., SWOP standard). Each different standard and specification of CMYK will result in different L*a*b* values for a same percentage amount of CMYK. In addition, the L*a*b* values for a given CMYK combination defined by a standard will be different for that same CMYK combination that is printed by any given printer. This is because the various toners or inks used by printers will produce their own different L*a*b* values. Toners and inks having different formulations will produce differing L*a*b* values. Any color combination (e.g., CMYK) that is specified as having certain color values (e.g., L*a*b* values) which do not take into consideration the characteristics of the colors of the printer that is to perform the printing, is referred to herein as being externally defined. For example, an externally defined color combination (e.g., CMYK) may be specified by the SWOP standard, any other standard, or by the characteristics (inks/toners) of another printer (as would be done for a proofing application). In many cases, a printer job will be received in which the four dimensional colorant (CMYK) is externally defined. Therefore, the printer that is to perform the printing must convert the received externally defined CMYK values into equivalent CMYK values that take into consideration the colors (i.e., inks, toners, etc.) and capabilities of the given printer. A CMYK of a printer (C'M'Y'K') is equivalent to an externally defined CMYK if the L*a*b* values are the same.
Therefore, it is desirable to convert an externally defined CMYK to its corresponding L*a*b* values and to use these L*a*b* values to find an equivalent C'M'Y'K' combination for a given printer. This transformation can be depicted as EQU (CMYK).sub.STD .fwdarw.(L*a*b*).sub.STD =(L*a*b*).sub.PTR .fwdarw.(C'M'Y'K').sub.PRTR
The problem is that there is not a one-to-one mapping from L*a*b* to CMYK. That is, there is not a unique combination of CMYK for a given L*a*b*.